home *** CD-ROM | disk | FTP | other *** search
- (*************************************************************************
-
- $RCSfile: NonVolatile.mod $
- Description: Interface to nonvolatile.library
-
- Created by: fjc (Frank Copeland)
- $Revision: 3.7 $
- $Author: fjc $
- $Date: 1995/06/04 23:13:14 $
-
- Includes Release 40.15
-
- (C) Copyright 1990-1993 Commodore-Amiga, Inc.
- All Rights Reserved
-
- Oberon-A Interface Copyright © 1994-1995, Frank Copeland.
- This file is part of the Oberon-A Interface.
- See Oberon-A.doc for conditions of use and distribution.
-
- *************************************************************************)
-
- <* STANDARD- *>
-
- MODULE [2] NonVolatile;
-
- IMPORT SYS := SYSTEM, Kernel, e := Exec, s := Sets;
-
- (*
- ** $VER: nonvolatile.h 40.8 (30.7.93)
- **
- ** nonvolatile.library interface structures and defintions.
- *)
-
-
- (*****************************************************************************)
-
- TYPE
-
- NVInfoPtr * = POINTER TO NVInfo;
- NVInfo * = RECORD
- maxStorage * : e.ULONG;
- freeStorage * : e.ULONG;
- END;
-
-
- (*****************************************************************************)
-
- TYPE
-
- EntryPtr * = POINTER TO Entry;
- Entry * = RECORD (e.MinNodeBase)
- minNode * : e.MinNode;
- name * : e.LSTRPTR;
- size * : e.ULONG;
- protection * : e.ULONG;
- END;
-
- CONST
-
- (* bit definitions for mask in SetNVProtection(). Also used for
- * NVEntry.nve_Protection.
- *)
- delete * = 0;
- appName * = 31;
-
-
- (*****************************************************************************)
-
- CONST
-
- (* errors from StoreNV() *)
- errBadName * = 1;
- errWriteProt * = 2;
- errFail * = 3;
- errFatal * = 4;
-
- TYPE
- DataPtr * = POINTER TO Data;
- Data * = RECORD END;
-
-
- (*-- Library Base variable --------------------------------------------*)
-
- CONST
-
- nonvolatileName * = "nonvolatile.library";
-
- VAR
-
- base* : e.LibraryPtr;
-
-
- (*-- Library Functions ------------------------------------------------*)
-
- (*
- ** $VER: nonvolatile_protos.h 40.5 (30.7.93)
- *)
-
- (*--- functions in V40 or higher (Release 3.1) ---*)
-
- PROCEDURE GetCopyNV* [base,-30]
- ( appName [8] : ARRAY OF CHAR;
- itemName [9] : ARRAY OF CHAR;
- killRequesters [1] : e.LONGBOOL )
- : DataPtr;
-
- PROCEDURE FreeNVData* [base,-36]
- ( data [8] : DataPtr );
-
- PROCEDURE StoreNV* [base,-42]
- ( appName [8] : ARRAY OF CHAR;
- itemName [9] : ARRAY OF CHAR;
- data [10] : DataPtr;
- length [0] : e.ULONG;
- killRequesters [1] : e.LONGBOOL )
- : e.UWORD;
-
- PROCEDURE DeleteNV* [base,-48]
- ( appName [8] : ARRAY OF CHAR;
- itemName [9] : ARRAY OF CHAR;
- killRequesters [1] : e.LONGBOOL )
- : BOOLEAN;
-
- PROCEDURE GetNVInfo* [base,-54]
- ( killRequesters [1] : e.LONGBOOL )
- : NVInfoPtr;
-
- PROCEDURE GetNVList* [base,-60]
- ( appName [8] : ARRAY OF CHAR;
- killRequesters [1] : e.LONGBOOL )
- : e.MinListPtr;
-
- PROCEDURE SetNVProtection* [base,-66]
- ( appName [8] : ARRAY OF CHAR;
- itemName [9] : ARRAY OF CHAR;
- mask [2] : s.SET32;
- killRequesters [1] : e.LONGBOOL )
- : BOOLEAN;
-
-
- (* determine the size of data returned by this library *)
- (* #define SizeNVData(DataPtr) ((((ULONG * ) DataPtr)[-1]) - 4) *)
-
- (*------------------------------------*)
- PROCEDURE [0] SizeNVData (data : DataPtr) : e.ULONG;
- VAR size : LONGINT;
- BEGIN (* SizeNVData *)
- SYS.GET (SYS.VAL (LONGINT, data) - 4, size);
- RETURN size - 4
- END SizeNVData;
-
-
- (*-- Library Base variable --------------------------------------------*)
-
- <*$LongVars-*>
-
- (*-----------------------------------*)
- PROCEDURE* [0] CloseLib (VAR rc : LONGINT);
-
- BEGIN (* CloseLib *)
- IF base # NIL THEN e.CloseLibrary (base) END
- END CloseLib;
-
- BEGIN
- base := e.OpenLibrary (nonvolatileName, e.libraryMinimum);
- IF base # NIL THEN Kernel.SetCleanup (CloseLib) END
- END NonVolatile.
-